home *** CD-ROM | disk | FTP | other *** search
/ CU Amiga Super CD-ROM 25 / CU Amiga Magazine's Super CD-ROM 25 (1998)(EMAP Images)(GB)(Track 1 of 2)[!][issue 1998-08].iso / CUCD / Programming / GMS / GMSDev / Includes / system / sysobject.h < prev    next >
Encoding:
C/C++ Source or Header  |  1998-05-09  |  6.6 KB  |  155 lines

  1. #ifndef SYSTEM_SYSOBJECT_H
  2. #define SYSTEM_SYSOBJECT_H TRUE
  3.  
  4. /*
  5. **  $VER: sysobject.h V1.0
  6. **
  7. **  (C) Copyright 1996-1998 DreamWorld Productions.
  8. **      All Rights Reserved.
  9. **
  10. */
  11.  
  12. #ifndef DPKERNEL_H
  13. #include <dpkernel/dpkernel.h>
  14. #endif
  15.  
  16. /****************************************************************************
  17. ** The SysObject structure.
  18. */
  19.  
  20. #define VER_SYSOBJECT  1
  21. #define TAGS_SYSOBJECT ((ID_SPCTAGS<<16)|ID_SYSOBJECT)
  22.  
  23. struct SysObject {
  24.   struct Head Head;
  25.   struct SysObject *Prev;  /* Previous object in list */
  26.   struct SysObject *Next;  /* Next object in list */
  27.   WORD   ObjectID;         /* ID of this object, eg ID_PICTURE if master, or ID_HIDDEN if child */
  28.   WORD   ClassID;          /* Class reference ID, use ID_HIDDEN if no class */
  29.   BYTE   *Name;            /* Standard name of the object, eg "Picture", "Universe"... */
  30.  
  31.   #ifdef _DCC
  32.     LONG  (*CopyToUnv)(__A0 struct Universe *,  __A1 struct Head *);
  33.     LONG  (*CopyFromUnv)(__A0 struct Universe *, __A1 struct Head *);
  34.     WORD  (*CheckFile)(__A0 struct File *, __A1 APTR Buffer);
  35.     struct Head * (*Load)(__A0 struct File *);
  36.     LONG  (*Show)(__A0 APTR Object);
  37.     struct Head * (*Get)(__A0 struct Stats *);
  38.     void  (*Free)(__A0 APTR Object);
  39.     LONG  (*Init)(__A0 APTR Object, __A1 APTR Container);
  40.     LONG  (*Read)(__A0 APTR Object, __A1 APTR Buffer, __D0 LONG Length);
  41.     LONG  (*Write)(__A0 APTR Object, __A1 APTR Buffer, __D0 LONG Length);
  42.     LONG  (*Rename)(__A0 APTR Object __A1 BYTE *Name);
  43.     void  (*Hide)(__A0 APTR Object);
  44.     void  (*yy03)(void);
  45.     LONG  (*SaveToFile)(__A0 APTR Object, __A1 struct File *DestFile);
  46.     LONG  (*Query)(__A0 APTR Object);
  47.     LONG  (*Activate)(__A0 APTR Object);
  48.     LONG  (*Deactivate)(__A0 APTR Object);
  49.     LONG  (*Draw)(__A0 APTR Object);
  50.     LONG  (*Clear)(__A0 APTR Object);
  51.     LONG  (*Reset)(__A0 APTR Object);
  52.     LONG  (*Flush)(__A0 APTR Object);
  53.     LONG  (*TagTrigger)(__A0 LONG *TagPos, __A1 struct Head *);
  54.     struct SysObject *Master; /* Reference to the master sysobject if this is a child */
  55.     LONG  yy00;
  56.     void  (*Unlock)(__A0 APTR Object);
  57.     LONG  (*DetachParent)(__A0 APTR Child, __A1 APTR Parent);
  58.     LONG  (*DetachChild)(__A0 APTR Child, __A1 APTR Parent);
  59.     LONG  (*Unhook)(__A0 APTR Object, __A1 APTR Chain);
  60.     void  (*MoveToBack)(__A0 APTR Object);
  61.     void  (*MoveToFront)(__A0 APTR Object);
  62.     BYTE  *FileExtension;
  63.     BYTE  *FileDesc;
  64.     LONG  (*Copy)(__A0 APTR Source, __A1 APTR Dest);
  65.     ECODE (*Lock)(__A0 APTR Object, __D0 WORD LockCount);
  66.     LONG  (*Seek)(__A0 APTR Object, __D0 LONG Offset, __D1 WORD Position);
  67.     ECODE (*AttemptExclusive)(__A0 APTR Object);
  68.     LONG  yy01;
  69.     void  (*FreeExclusive)(__A0 APTR Object);
  70.  
  71.   #else
  72.     LIBPTR LONG  (*CopyToUnv)(mreg(__a0) struct Universe *, mreg(__a1) struct Head *);
  73.     LIBPTR LONG  (*CopyFromUnv)(mreg(__a0) struct Universe *, mreg(__a1) struct Head *);
  74.     LIBPTR WORD  (*CheckFile)(mreg(__a0) struct File *, mreg(__a1) APTR Buffer);
  75.     LIBPTR struct Head * (*Load)(mreg(__a0) struct File *);
  76.     LIBPTR LONG  (*Show)(mreg(__a0) APTR Object);
  77.     LIBPTR struct Head * (*Get)(mreg(__a0) struct Stats *);
  78.     LIBPTR void  (*Free)(mreg(__a0) APTR Object);
  79.     LIBPTR LONG  (*Init)(mreg(__a0) APTR Object, mreg(__a1) APTR Container);
  80.     LIBPTR LONG  (*Read)(mreg(__a0) APTR Object, mreg(__a1) APTR Buffer, mreg(__d0) LONG Length);
  81.     LIBPTR LONG  (*Write)(mreg(__a0) APTR Object, mreg(__a1) APTR Buffer, mreg(__d0) LONG Length);
  82.     LIBPTR LONG  (*Rename)(mreg(__a0) APTR Object, mreg(__a1) BYTE *Name);
  83.     LIBPTR void  (*Hide)(mreg(__a0) APTR Object);
  84.     LIBPTR void  (*yy03)(void);
  85.     LIBPTR LONG  (*SaveToFile)(mreg(__a0) APTR Object, mreg(__a1) struct File *DestFile);
  86.     LIBPTR LONG  (*Query)(mreg(__a0) APTR Object);
  87.     LIBPTR LONG  (*Activate)(mreg(__a0) APTR Object);
  88.     LIBPTR LONG  (*Deactivate)(mreg(__a0) APTR Object);
  89.     LIBPTR LONG  (*Draw)(mreg(__a0) APTR Object);
  90.     LIBPTR LONG  (*Clear)(mreg(__a0) APTR Object);
  91.     LIBPTR LONG  (*Reset)(mreg(__a0) APTR Object);
  92.     LIBPTR LONG  (*Flush)(mreg(__a0) APTR Object);
  93.     LIBPTR LONG  (*TagTrigger)(mreg(__a0) LONG *TagPos, mreg(__a1) struct Head *);
  94.     struct SysObject *Master;
  95.     LONG   yy00;
  96.     LIBPTR void  (*Unlock)(mreg(__a0) APTR Object);
  97.     LIBPTR LONG  (*DetachParent)(mreg(__a0) APTR Child, mreg(__a1) APTR Parent);
  98.     LIBPTR LONG  (*DetachChild)(mreg(__a0) APTR Child, mreg(__a1) APTR Parent);
  99.     LIBPTR LONG  (*Unhook)(mreg(__a0) APTR Object, mreg(__a1) APTR Chain);
  100.     LIBPTR void  (*MoveToBack)(mreg(__a0) APTR Object);
  101.     LIBPTR void  (*MoveToFront)(mreg(__a0) APTR Object);
  102.     BYTE   *FileExtension;
  103.     BYTE   *FileDesc;
  104.     LIBPTR LONG  (*Copy)(mreg(__a0) APTR Source, mreg(__a1) APTR Dest);
  105.     LIBPTR ECODE (*Lock)(mreg(__a0) APTR Object, mreg(__d0) WORD LockCount);
  106.     LIBPTR LONG  (*Seek)(mreg(__a0) APTR Object, mreg(__d0) LONG Offset, mreg(__d1) WORD Position);
  107.     LIBPTR ECODE (*AttemptExclusive)(mreg(__a0) APTR Object);
  108.     LONG   yy01;
  109.     LIBPTR void  (*FreeExclusive)(mreg(__a0) APTR Object);
  110.   #endif
  111. };
  112.  
  113. #define SOA_Prev             (TAPTR|12)
  114. #define SOA_Next             (TAPTR|16)
  115. #define SOA_CopyToUnv        (TAPTR|28)
  116. #define SOA_CopyFromUnv      (TAPTR|32)
  117. #define SOA_CheckFile        (TAPTR|36)
  118. #define SOA_Load             (TAPTR|40)
  119. #define SOA_Show             (TAPTR|44)
  120. #define SOA_Get              (TAPTR|48)
  121. #define SOA_Free             (TAPTR|52)
  122. #define SOA_Init             (TAPTR|56)
  123. #define SOA_Read             (TAPTR|60)
  124. #define SOA_Write            (TAPTR|64)
  125. #define SOA_Rename           (TAPTR|68)
  126. #define SOA_Hide             (TAPTR|72)
  127. #define SOA_yy03             (TAPTR|76)
  128. #define SOA_SaveToFile       (TAPTR|80)
  129. #define SOA_Query            (TAPTR|84)
  130. #define SOA_Activate         (TAPTR|88)
  131. #define SOA_Deactivate       (TAPTR|92)
  132. #define SOA_Draw             (TAPTR|96)
  133. #define SOA_Clear            (TAPTR|100)
  134. #define SOA_Reset            (TAPTR|104)
  135. #define SOA_Flush            (TAPTR|108)
  136. #define SOA_TagTrigger       (TAPTR|112)
  137. #define SOA_Master           (TAPTR|116)
  138. #define SOA_yy00             (TAPTR|120)
  139. #define SOA_Unlock           (TAPTR|124)
  140. #define SOA_DetachParent     (TAPTR|128)
  141. #define SOA_DetachChild      (TAPTR|132)
  142. #define SOA_Unhook           (TAPTR|136)
  143. #define SOA_MoveToBack       (TAPTR|140)
  144. #define SOA_MoveToFront      (TAPTR|144)
  145. #define SOA_FileExtension    (TAPTR|148)
  146. #define SOA_FileDesc         (TAPTR|152)
  147. #define SOA_Copy             (TAPTR|156)
  148. #define SOA_Lock             (TAPTR|160)
  149. #define SOA_Seek             (TAPTR|164)
  150. #define SOA_AttemptExclusive (TAPTR|168)
  151. #define SOA_yy01             (TAPTR|172)
  152. #define SOA_FreeExclusive    (TAPTR|176)
  153.  
  154. #endif /* SYSTEM_SYSOBJECT_H */
  155.